﻿
using Entity;
using Entity.DTO;
using System.Runtime.CompilerServices;
using System.Security.Principal;

namespace Bll
{
    /// <summary>
    /// 菜单业务逻辑接口
    /// </summary>
    public interface IMenuInfoBll
    {
        ///// <summary>
        ///// 创建菜单
        ///// </summary>
        ///// <returns></returns>
        public bool CreateMenuInfo(string title, string description, int level, int sort, string href, string icon, string target, string parentId, out string msg);

        /// <summary>
        /// 软删除菜单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteMenuInfo(string id);

        /// <summary>
        /// 批量软删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public bool DeleteMenuInfos(List<string> ids);

        /// <summary>
        /// 获取首页菜单
        /// </summary>
        /// <returns></returns>
        List<HomeMenuInfoModel> GetHomeMenu(string userId);


        /// <summary>
        /// 根据菜单id获取菜单信息
        /// </summary>
        /// <param name="menuId"></param>
        /// <returns></returns>
        public MenuInfo GetMenuInfoById(string menuId);


        /// <summary>
        /// 获取菜单集合
        /// </summary>
        public object GetMenuInfoList(string menuName, int page, int limit, out int count);

        /// <summary>
        /// 获取下拉选备选数据
        /// </summary>
        object GetSelectOptionList(string menuId);

        /// <summary>
        /// 更新菜单
        /// </summary>
        /// <returns></returns>
        public bool UpdateMenuInfo(string menuId, string title, string description, int level, int sort, string href, string icon, string target, string parentId,out string msg);

        ///// <summary>
        ///// 为菜单解除绑定用户
        ///// </summary>
        ///// <param name="menuId"></param>
        ///// <param name="userIds"></param>
        ///// <returns></returns>
        //bool UnbindUserInfo(string menuId, List<string> userIds);
    }
}